#include "Bullet3Collision/NarrowPhaseCollision/b3ConvexUtility.h"
#ifdef __cplusplus
extern "C" {
#endif
b3MyFace* bullet_Newb3MyFace(){
	b3MyFace* wrap_out = new b3MyFace();
	return wrap_out;
}

float** bullet_b3MyFace_GetFieldOfM_plane(b3MyFace* c_this){
	return (float**)(&c_this->m_plane);
}

b3ConvexUtility* bullet_Newb3ConvexUtility(){
	b3ConvexUtility* wrap_out = new b3ConvexUtility();
	return wrap_out;
}

b3Vector3* bullet_b3ConvexUtility_GetFieldOfM_extents(b3ConvexUtility* c_this){
	return (b3Vector3*)(&c_this->m_extents);
}

b3Vector3* bullet_b3ConvexUtility_GetFieldOfM_localCenter(b3ConvexUtility* c_this){
	return (b3Vector3*)(&c_this->m_localCenter);
}

float bullet_b3ConvexUtility_GetFieldOfM_radius(b3ConvexUtility* c_this){
	return (float)(c_this->m_radius);
}

b3Vector3* bullet_b3ConvexUtility_GetFieldOfMC(b3ConvexUtility* c_this){
	return (b3Vector3*)(&c_this->mC);
}

b3Vector3* bullet_b3ConvexUtility_GetFieldOfME(b3ConvexUtility* c_this){
	return (b3Vector3*)(&c_this->mE);
}

void bullet_b3ConvexUtility_initialize(b3ConvexUtility* c_this){
	c_this->initialize();
}

bool bullet_b3ConvexUtility_initializePolyhedralFeatures(b3ConvexUtility* c_this,b3Vector3* orgVertices,int numVertices,bool mergeCoplanarTriangles){
	b3Vector3 const * c_arg_orgVertices=(b3Vector3 const *)(void*)(orgVertices);
	int c_arg_numVertices=numVertices;
	bool c_arg_mergeCoplanarTriangles=mergeCoplanarTriangles;
	bool c_out = c_this->initializePolyhedralFeatures(c_arg_orgVertices,c_arg_numVertices,c_arg_mergeCoplanarTriangles);
	bool wrap_out = (c_out);
	return wrap_out;
}

#ifdef __cplusplus
}
#endif
